package com.jxau.mall.generator;


import com.baomidou.mybatisplus.generator.FastAutoGenerator;

/**
 * @program: shop
 * @description: 代码生成器
 * @author: guojiani
 * @create: 2025-04-10 19:45
 **/
public class CodeGenerator {
    public static void main(String[] args) {
        // 使用 FastAutoGenerator 快速配置代码生成器,注意修改数据库的 URL
        FastAutoGenerator.create("jdbc:mysql://192.168.100.104:3306/shop_order?serverTimezone=Asia/Shanghai",
                        "root", "051103")
                // 全局配置
                .globalConfig(builder -> {
                    builder.author("guojiani") // 设置作者
                            .disableOpenDir() // 禁止打开输出目录
                            .outputDir("mall-order/src/main/java"); // 输出目录，不同项目需要修改
                })
                // 包配置
                .packageConfig(builder ->
                    builder.parent("com.jxau.mall.order") // 设置父包名
                            .entity("entity") // 设置实体类包名
                            .mapper("mapper") // 设置 Mapper 接口包名
                            .service("service") // 设置 Service 接口包名
                            .serviceImpl("service.impl")//设置 Service 实现类包名
                            .xml("mappers")//设置 Mapper XML 文件包名
                             )
                            // 策略配置
                .strategyConfig(builder -> {
                                builder.addInclude("order_info", "order_detail") //设置需要生成的表名
                                        //.addTablePrefix("t_") // 设置过滤表前
                                        .entityBuilder()
                                        .enableLombok()// 启用 Lombok
                                        .enableTableFieldAnnotation() // 启用字段注解
                                        .controllerBuilder()
                                        .enableRestStyle() // 启用 REST 风格
                                        .serviceBuilder()
                                        .mapperBuilder();
                                })
                            .execute();// 执行生成
    }
}

